Levels are for segments, not for points. Use minimum adjacent level for points.
authorparkrrrr <parkrrrr@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 27 Jul 2005 19:57:24 +0000 (19:57 +0000)
committerparkrrrr <parkrrrr@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 27 Jul 2005 19:57:24 +0000 (19:57 +0000)
gpsbabel/google.c

index cbaa5b93562b135e209c983c30ecb20647cf7195..fa956724b09156f0ff8e1deffbb245bbb3421d48 100644 (file)
@@ -124,6 +124,8 @@ void goog_poly_e( const char *args, const char **unused )
        long lat = 0;
        long lon = 0;
        long level = 0;
+       long level1 = 0;
+       long level2 = 0;
         char *str = encoded_points;
        char *lstr = encoded_levels;
        
@@ -136,10 +138,16 @@ void goog_poly_e( const char *args, const char **unused )
                lon += decode_goog64( &str );
                
                level = 0;
+               level1 = 0;
                if ( lstr && *lstr ) 
                {
-                       level = decode_goog64( &lstr );
-               } 
+                       level2 = level1;
+                       level1 = decode_goog64( &lstr );
+                       level = (level1<level2)?level1:level2;
+               }
+               /* level of 0 happens for endpoints */
+               if ( level == 0 ) 
+                       level = 99999;  
 
                {
                        waypoint *wpt_tmp = waypt_new();